var crypto = require('crypto');

//returns 使用 base64 对 data 进行编码
var base64_Encode =function (str) {
    //var bitmap =fs.readFileSync(str);//读取文件
    // var buf =new Buffer(bitmap);
    // return buf.toString('base64');
    return new Buffer(str).toString('base64');
};

//md5Encode demo
var str = 'abc';
var md5 = crypto.createHash('md5');
str += '8922c6211882d426ea111';
md5.update(str);
a= md5.digest('hex').substr(0, 16);
console.log(a);

//js闭包，定义1个func md5Encode
var md5Encode =function (str) {
  var md5 =crypto.createHash('md5');
  //每次累加1个字符串
  str +="8922c6211882d426ea111";
  md5.update(str);
  return md5.digest('hex').substr(0,16);
};

//一直疑惑的
var key ="";
var token ='1';
key +='&'; //key =key+'&'
console.log(token);
console.log(key);
if(!!token){  //这里token已经赋值为true,!!token也是为true,那什么这里不写if(token)
    console.log("true 已定义赋值");
     //key =key+token  &a
}
else
{
   console.log("false 已定义未赋值");
}

//获取签名
var getSignature = function (str, key, token) {
    var sign;
    key += '&';
    if (!!token) key += token;//token一开始为false
    sign = crypto.createHmac('sha1', key) //加密以后需要确定
        .update(str)
        .digest().toString('base64');
    console.log('====>', sign);
    return sign;
};